home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 351-375 / disk_361 / xcolor-lib / xcolor-library.dok < prev    next >
Text File  |  1992-05-06  |  14KB  |  640 lines

  1.  
  2.  
  3.                           XCOLOR-LIBRARY 
  4.  
  5.    ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  6.  
  7.                     Autor : Roger Fischlin
  8.                             Steigerwaldweg 6
  9.                             6450 Hanau 7
  10.                             BR Deutschland
  11.  
  12.                     Tele.:  (06181) 650266
  13.  
  14.  
  15.  
  16.  
  17.  
  18.   Allgemeines
  19.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  20.  
  21.   Die XColor-Library stellt einige Funktionen rund um Farben
  22.   dem Programmierer zur Verfügung, u.a. sogar einen Colour-
  23.   Requester.
  24.  
  25.   Fast alle Funktionen nehmen die Änderungen direkt in der ColorMap
  26.   vor, so daß , damit die Farbänderung sichtbar werden, 
  27.   RemakeDisplay (Intuition-Library) aufgerufen werden muß. Dies
  28.   hat zwei Gründe :
  29.  
  30.   · RemakeDisplay ist multitasking-feindlich !
  31.  
  32.   · Alle Änderungen werden auf einmal sichtbar !
  33.  
  34.  
  35.    
  36.   Haben Sie die XColor-Library geöffnet, so erhalten Sie auch die
  37.   Zeiger auf die Graphics- , FFP- und Intuition-Library, die in der
  38.   XColor-Library-Basis-Struktur  vermerkt sind.
  39.  
  40.  
  41.  
  42.  
  43.   Copyright :
  44.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  45.  
  46.   Die XColor-Library ist kein Public Domain, das Copyright liegt
  47.   beim Autor, Roger Fischlin. Die XColor-Library darf aber auf 
  48.   PD-Disketten verbreitet werden, wenn
  49.  
  50.   · kein Gewinn erwirtschaftet wird !!!!
  51.   · keinerlei Änderungen vorgenommen wurden !
  52.  
  53.   Sie können also bei einem PD-Programm die XColor-Library mit-
  54.   liefern, dieser Text muß nicht enthalten sein.
  55.   
  56.  
  57.  
  58.   Diese Library darf auch in Verbindung mit kommerzieller Software
  59.   vertrieben werden, wenn
  60.  
  61.   · keinerlei Änderungen vorgenommen wurden !
  62.   · diese, unveränderte Textdatei auch enthalten ist !  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.   Bugs / Fehler :
  71.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  72.  
  73.   Sollten Fehler der Library beim Arbeiten mit ihr auftreten, so
  74.   bin ich an exakten Fehlerberichten interessiert. 
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.   Anleitung zum Gebrauch des ColourRequesters
  85.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  86.  
  87.   Da die meisten Funktion klar sein dürften, so beschränke ich mich    
  88.   auf vier Besonderheiten :
  89.  
  90.   1. RGB <-> HSV
  91.  
  92.      Durch Anklicken von RGB / HSV kann zwischen RGB- und HSV-Farb-
  93.      bestimmung umgeschaltet werden.
  94.  
  95.   2. hex <-> dezimal 
  96.    
  97.      bei RGB-Wert kann durch Anklicken der Werte zischen hexadezimaler
  98.      und dezimaler Darstellung umgeschaltet werden, der Farbindex wird
  99.      dann auch in hexadizimaler (aber ohne $-Zeichen) bzw. dezimaler
  100.      Schreibweise dargestellt.
  101.  
  102.   3. Über dem Farbindex (linke Seite) findet sich das Undo-Gadget für
  103.      die dargestellte Farbe.
  104.  
  105.   4. Alle Funktionen (COPY, SPREAD, EXCHANGE) können durch erneute
  106.      Anwahl abgebrochen werden.
  107.  
  108.  
  109.  
  110.  
  111.   
  112.  
  113.  
  114.   Colour <-> Color
  115.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  116.  
  117.   Bei der Entwicklung habe ich statt dem amerikanischen Color das
  118.   englische Colour verwendet. Da aber amerikanische Schreibweisen
  119.   auf dem Amiga üblich sind, habe ich  Color ergänzt.
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.   Funktionen der XColor-Library :
  131.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.   CheckColour
  140.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  141.  
  142.  
  143.   Funktion     : CheckColour
  144.  
  145.   Offset       : -30
  146.  
  147.   Parameter    :  d0   - Farberegister
  148.                   a0   - ^ViewPort
  149.  
  150.   Ergebnis     :  1    - EHB-Farbe
  151.                   0    - Standardfarbe
  152.                  -1    - existiert nicht 
  153.  
  154.  
  155.   Erläuterungen: Diese Funktion liefert die Art der Farbe eines
  156.                  Farberegisters.
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.   ReadRGB4
  165.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  166.  
  167.  
  168.   Funktion     : ReadRGB4
  169.  
  170.   Offset       : -36
  171.  
  172.   Parameter    :  d0   - Farberegister
  173.                   a0   - ^ViewPort
  174.  
  175.   Ergebnis     :  RGB  - Farbwert als Word
  176.                   -1   - Farberegister existiert nicht 
  177.  
  178.  
  179.   Erläuterungen: Diese Funktion liefert die Farbe des Registers als
  180.                  RGB-Word. Dieses Word ist wie folgt zusammengesetzt:
  181.                  
  182.                  (R * 2^8) + (G * 2^4) + B 
  183.  
  184.                  Handelt es sich bei dem Register um eine EHB-Farbe,
  185.                  so wird auch nur die Farbe mit der halben Helligkeit
  186.                  als Ergebnis zurückgegeben.
  187.  
  188.  
  189.   Querverweis  : WriteRGB4
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.   WriteRGB4
  198.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  199.  
  200.  
  201.   Funktion     : WriteRGB4
  202.  
  203.   Offset       : -42
  204.  
  205.   Parameter    :  d0   - Farberegister
  206.                   d1   - RGB-Wert als Word
  207.                   a0   - ^ViewPort
  208.  
  209.   Ergebnis     :   0   - OK
  210.                   -1   - Farberegister existiert nicht 
  211.  
  212.  
  213.   Erläuterungen: Diese Funktion überträgt den Farbwert in der ColorMap
  214.                  des ViewPorts.
  215.                  Handelt es sich bei dem Register um eine EHB-Farbe,
  216.                  so wird die Helligkeit verdoppelt und der neue RGB-
  217.                  Wert ins entsprechende Register übertragen, damit die
  218.                  EHB-Farbe den angegebenen RGB-Wert erhält. 
  219.                  Da der Wert direkt in die ColorMap übertragen wird,
  220.                  muß, bevor die Änderungen sichtbar wird, RemakeDisplay
  221.                  (Intuition-Library) aufgerufen werden.
  222.  
  223.  
  224.   Querverweis  : ReadRGB4
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.   ColorMapAddress
  233.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  234.  
  235.  
  236.   Funktion     : ColorMapAddress
  237.  
  238.   Offset       : -48
  239.  
  240.   Parameter    :  d0   - Art der Struktur
  241.                   a0   - ^Struktur
  242.  
  243.   Ergebnis     : <>0   - Zeiger auf ColorMap
  244.                    0   - falsche Strukturart
  245.  
  246.  
  247.   Erläuterungen: Diese Funktion ermittelt den Zeiger auf die ColorMap.
  248.                  Als Ausgangsbasis können drei Strukturen dienen, die
  249.                  Art der verwendeten muß auch übergeben werden :
  250.  
  251.                  0 : ViewPort
  252.                  1 : Window
  253.                  2 : Screen
  254.  
  255.  
  256.  
  257.  
  258.  
  259.   ExchangeColours
  260.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  261.  
  262.  
  263.   Funktion     : ExchangeColours
  264.  
  265.   Offset       : -54
  266.  
  267.   Parameter    :  d0   - Farberegister #1
  268.                   d1   - Farberegister #2
  269.                   a0   - ^ViewPort
  270.  
  271.   Ergebnis     :   0   - OK
  272.                   -1   - Farberegister existiert/existieren nicht, 
  273.                          oder es handelt sich um eine EHB- und eine
  274.                          normales Register.
  275.  
  276.   Erläuterungen: Diese Funktion vertauscht zwei Einträge der Color-
  277.                  Map des ViewPorts.
  278.                  Handelt es sich bei beiden Registern um eine EHB-
  279.                  Farben, so werden die zugehörigen unteren Farb-
  280.                  register vertauscht.
  281.                  Da nur die ColorMap verändert wird, muß die Copper-
  282.                  List mit RemakeDisplay (Intuition-Library) neu
  283.                  aufgebaut werden, bevor die Farbänderung sicht-
  284.                  bar wird.
  285.  
  286.  
  287.   Querverweis  : CopyColours, SpreadColours
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.   CopyColours
  296.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  297.  
  298.  
  299.   Funktion     : CopyColours
  300.  
  301.   Offset       : -60    
  302.  
  303.   Parameter    :  d0   - Farberegister #1 ( Quelle ) 
  304.                   d1   - Farberegister #2 (  Ziel  )
  305.                   a0   - ^ViewPort
  306.  
  307.   Ergebnis     :   0   - OK
  308.                   -1   - Farberegister existiert/existieren nicht, 
  309.                          oder es handelt sich um eine EHB- und eine
  310.                          normales Register.
  311.  
  312.   Erläuterungen: Diese Funktion kopiert den RGB-Wert eines Registers
  313.                  in ein anderes der ColorMap des ViewPorts.
  314.                  Handelt es sich bei beiden Registern um EHB-
  315.                  Farben, so werden die zugehörigen unteren Farb-
  316.                  register übertragen.
  317.                  Da nur die ColorMap verändert wird, muß die Copper-
  318.                  List mit RemakeDisplay (Intuition-Library) neu
  319.                  aufgebaut werden, bevor die Farbänderung sicht-
  320.                  bar wird.
  321.  
  322.  
  323.   Querverweis  : ExchangeColours, SpreadColours
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.   SpreadColours
  332.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  333.  
  334.  
  335.   Funktion     : SpreadColours
  336.  
  337.   Offset       : -66
  338.  
  339.   Parameter    :  d0   - Farberegister #1
  340.                   d1   - Farberegister #2
  341.                   a0   - ^ViewPort
  342.  
  343.   Ergebnis     :   0   - OK
  344.                   -1   - Farberegister existiert/existieren nicht, 
  345.                          oder es handelt sich um eine EHB- und eine
  346.                          normales Register.
  347.  
  348.   Erläuterungen: Diese Funktion bildet einen weichen Übergang zwischen
  349.                  den beiden Farbregistern der ColorMap des ViewPorts.
  350.                  Handelt es sich bei beiden Registern um EHB-
  351.                  Farben, so werden die zugehörigen unteren Farb-
  352.                  register bearbeitet.
  353.                  Da nur die ColorMap verändert wird, muß die Copper-
  354.                  List mit RemakeDisplay (Intuition-Library) neu
  355.                  aufgebaut werden, bevor die Farbänderung sicht-
  356.                  bar wird.
  357.  
  358.  
  359.   Querverweis  : ExchangeColours, CopyColours
  360.  
  361.  
  362.                  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.   ColourDepth
  371.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  372.  
  373.  
  374.   Funktion     : ColourDepth
  375.  
  376.   Offset       : -72
  377.  
  378.   Parameter    :  a0   - ^Screen
  379.  
  380.   Ergebnis     : Tiefe - Tiefe des Screens, bei HAM-Modus 4 und bei
  381.                          EHB-Mode 6.
  382.  
  383.   Erläuterungen: Diese Funktion liefert die den Logarithmus der
  384.                  Anzahl der Farbregister zur Basis 2.
  385.  
  386.  
  387.   Querverweis  : ColourNumber
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.   ColourNumber
  397.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  398.  
  399.  
  400.   Funktion     : ColourNumber
  401.  
  402.   Offset       : -78
  403.  
  404.   Parameter    :  a0   - ^Screen
  405.  
  406.   Ergebnis     : Anzahl- Anzahl der Farbregister eines Screens,
  407.                          bei HAM-Modus 16 und bei EHB-Modus 64.
  408.                          
  409.  
  410.   Erläuterungen: Diese Funktion liefert die Anzahl der Farbregister.
  411.  
  412.  
  413.   Querverweis  : ColourDepth
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.   MakeAntique
  421.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  422.  
  423.  
  424.   Funktion     : MakeAntique
  425.  
  426.   Offset       : -84
  427.  
  428.   Parameter    :  d0   - Farberegister
  429.                   d1   - Anzahl der Register
  430.                   a0   - ^ViewPort
  431.  
  432.   Ergebnis     :   0   - OK
  433.                   -1   - Farberegister existiert/existieren nicht.
  434.  
  435.  
  436.   Erläuterungen: Diese Funktion wandelt die die gegebene Anzahl von
  437.                  Farben ab dem gegebenen Register in antikes Aus-
  438.                  sehen um.
  439.                  Da nur die ColorMap verändert wird, muß die Copper-
  440.                  List mit RemakeDisplay (Intuition-Library) neu
  441.                  aufgebaut werden, bevor die Farbenänderung sicht-
  442.                  bar wird.
  443.  
  444.  
  445.   Querverweis  : MakeBW
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.   MakeBW
  453.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  454.  
  455.  
  456.   Funktion     : MakeBW
  457.  
  458.   Offset       : -90
  459.  
  460.   Parameter    :  d0   - Farberegister
  461.                   d1   - Anzahl der Register
  462.                   a0   - ^ViewPort
  463.  
  464.   Ergebnis     :   0   - OK
  465.                   -1   - Farberegister existiert/existieren nicht.
  466.  
  467.  
  468.   Erläuterungen: Diese Funktion wandelt die die gegebene Anzahl von
  469.                  Farben ab dem gegebenen Register in Schwarz-Weiß
  470.                  um.
  471.                  Da nur die ColorMap verändert wird, muß die Copper-
  472.                  List mit RemakeDisplay (Intuition-Library) neu
  473.                  aufgebaut werden, bevor die Farbänderung sicht-
  474.                  bar wird.
  475.  
  476.  
  477.   Querverweis  : MakeAntique
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.   CopyToBuffer
  486.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  487.  
  488.  
  489.   Funktion     : CopyToBuffer
  490.  
  491.   Offset       : -96
  492.  
  493.   Parameter    :  d0   - Farberegister
  494.                   d1   - Anzahl
  495.                   a0   - ^ViewPort
  496.                   a1   - ^Puffer
  497.  
  498.   Ergebnis     : Anzahl- Anzahl der übertragenen Farbwerte
  499.  
  500.  
  501.   Erläuterungen: Diese Funktion kopiert Farbeinträge der ColorMap des
  502.                  ViewPorts in den Puffer.
  503.                  Da nur die ColorMap verändert wird, muß die Copper-
  504.                  List mit RemakeDisplay (Intuition-Library) neu
  505.                  aufgebaut werden, bevor die Farbänderung sicht-
  506.                  bar wird.
  507.  
  508.  
  509.   Querverweis  : CopyToColorMap
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.   CopyToColorMap
  520.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  521.  
  522.  
  523.   Funktion     : CopyToColorMap
  524.  
  525.   Offset       : -102
  526.  
  527.   Parameter    :  d0   - Farberegister
  528.                   d1   - Anzahl
  529.                   a0   - ^ViewPort
  530.  
  531.   Ergebnis     : Anzahl- Anzahl der übertragenen Farbwerte
  532.  
  533.  
  534.   Erläuterungen: Diese Funktion kopiert die Farbwerte aus dem Puffer
  535.                  in die Register der ColorMap des Viewportes ab dem
  536.                  gegebenen Register.
  537.  
  538.  
  539.   Querverweis  : CopyToBuffer
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.   HSVtoRGB
  548.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  549.  
  550.  
  551.   Funktion     : HSVtoRGB
  552.  
  553.   Offset       : -108
  554.  
  555.   Parameter    :  d0   - H ($0000-$ffff)
  556.                   d1   - S ($0000-$ffff)
  557.                   d2   - V ($0000-$ffff)
  558.  
  559.   Ergebnis     :  RGB  - RGB-Wert des HSV-Wertes (als Word).
  560.                          
  561.  
  562.   Erläuterungen: Diese Funktion ermitellt den RGB-Wert zu einen HSV-
  563.                  Wert. Viele Malprogrammen (z.B. DPaint) haben neben 
  564.                  RGB-Schiebereglern auch HSV-Schieberegler zur Farb-
  565.                  bestimmung.
  566.  
  567.  
  568.   Querverweis  : RGBtoHSV
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.   RGBtoHSV
  576.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  577.  
  578.  
  579.   Funktion     : RGBtoHSV
  580.  
  581.   Offset       : -114
  582.  
  583.   Parameter    :  d0   - RGB als Word
  584.                   a0   - ^Puffer (3 Longwords=12 Bytes)
  585.  
  586.   Ergebnis     :       - HSV-Werte als Longword im Puffer 
  587.                          
  588.  
  589.   Erläuterungen: Diese Funktion ermitellt den HSV-Wert zu einen RGB-
  590.                  Wert. In dem Puffer finden sich dann die HSV-Werte
  591.                  getrennt als Longwords ($0000-$ffff).
  592.                  
  593.  
  594.  
  595.   Querverweis  : HSVtoRGB
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.   ColourRequester
  604.   ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  605.  
  606.  
  607.   Funktion     : ColourRequester
  608.  
  609.   Offset       : -120
  610.  
  611.   Parameter    :  a0   - ^ColourRequester-Struktur
  612.  
  613.   Ergebnis     :   0   - OK
  614.                   <0   - Fehler
  615.                          
  616.  
  617.   Erläuterungen: Die ColourRequester-Funktion stellt jedem 
  618.                  Programmierer einen Palette zum Verändern
  619.                  der Farben zur Verfügungung. Durch eine Viel-
  620.                  zahl von Optionen und Einsprungsvektoren
  621.                  kann jeder den Requester seinen Wünschen
  622.                  anpassen.
  623.                  
  624.                  
  625.                  
  626.                  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.                  
  638.  
  639.  
  640.